Fix #137: Fix WasmAgent/wasmagent-protocol#133 ([milestone Milestone 2] Create canonical-event.schema.json in @wasmagent/protocol - #146
Conversation
SummaryAdds well-structured CanonicalEvent schema with proper validation and test fixtures Severitynone Blocking findingsNone. Verdict✅ Approved Merge risklow Audit
{
"approved": true,
"severity": "none",
"summary": "Adds well-structured CanonicalEvent schema with proper validation and test fixtures",
"findings": [],
"merge_risk": "low",
"Model": "opus",
"model": "claude-cli",
"effort": "high",
"tokens": {
"input_tokens": 0,
"output_tokens": 0
},
"same_verdict_count": 1
} |
SummaryClean additive change adding a new CanonicalEvent schema with proper validation and test fixtures Severitynone Blocking findingsNone. Verdict✅ Approved Merge risklow Audit
{
"approved": true,
"severity": "none",
"summary": "Clean additive change adding a new CanonicalEvent schema with proper validation and test fixtures",
"findings": [],
"merge_risk": "low",
"Model": "opus",
"model": "claude-cli",
"effort": "high",
"tokens": {
"input_tokens": 0,
"output_tokens": 0
},
"same_verdict_count": 2
} |
|
Merge gate failed: |
SummarySchema addition is sound; no blockers found Severitynone Blocking findingsNone. Verdict✅ Approved Merge risklow Audit
{
"approved": true,
"severity": "none",
"summary": "Schema addition is sound; no blockers found",
"findings": [],
"merge_risk": "low",
"Model": "opus",
"model": "claude-cli",
"effort": "high",
"tokens": {
"input_tokens": 0,
"output_tokens": 0
},
"same_verdict_count": 3
} |
|
Merge gate failed: |
SummaryPR adds CanonicalEvent schema with proper validation; no blockers found. Severitynone Blocking findingsNone. Verdict✅ Approved Merge risklow Audit
{
"approved": true,
"severity": "none",
"summary": "PR adds CanonicalEvent schema with proper validation; no blockers found.",
"findings": [],
"merge_risk": "low",
"Model": "opus",
"model": "claude-cli",
"effort": "high",
"tokens": {
"input_tokens": 0,
"output_tokens": 0
},
"same_verdict_count": 4
} |
|
Merge gate failed: |
SummaryPR adds a well-structured CanonicalEvent schema with proper JSON Schema validation and test fixtures; no blockers found Severitynone Blocking findingsNone. Verdict✅ Approved Merge risklow Audit
{
"approved": true,
"severity": "none",
"summary": "PR adds a well-structured CanonicalEvent schema with proper JSON Schema validation and test fixtures; no blockers found",
"findings": [],
"merge_risk": "low",
"Model": "opus",
"model": "claude-cli",
"effort": "high",
"tokens": {
"input_tokens": 0,
"output_tokens": 0
},
"same_verdict_count": 5
} |
|
Merge gate failed: |
SummaryClean addition of CanonicalEvent schema with proper validation and test fixtures Severitynone Blocking findingsNone. Verdict✅ Approved Merge risklow Audit
{
"approved": true,
"severity": "none",
"summary": "Clean addition of CanonicalEvent schema with proper validation and test fixtures",
"findings": [],
"merge_risk": "low",
"Model": "opus",
"model": "claude-cli",
"effort": "high",
"tokens": {
"input_tokens": 0,
"output_tokens": 0
},
"same_verdict_count": 6
} |
|
Merge gate failed: |
SummaryNo blockers found - the PR adds a well-structured JSON schema with proper validation, test fixtures, and cryptographic integrity features. Severitynone Blocking findingsNone. Verdict✅ Approved Merge risklow Audit
{
"approved": true,
"severity": "none",
"summary": "No blockers found - the PR adds a well-structured JSON schema with proper validation, test fixtures, and cryptographic integrity features.",
"findings": [],
"merge_risk": "low",
"Model": "opus",
"model": "claude-cli",
"effort": "high",
"tokens": {
"input_tokens": 0,
"output_tokens": 0
},
"same_verdict_count": 7
} |
|
Merge gate failed: |
SummaryAdds canonical-event schema with proper validation and test coverage; no blockers found Severitynone Blocking findingsNone. Verdict✅ Approved Merge risklow Audit
{
"approved": true,
"severity": "none",
"summary": "Adds canonical-event schema with proper validation and test coverage; no blockers found",
"findings": [],
"merge_risk": "low",
"Model": "opus",
"model": "claude-cli",
"effort": "high",
"tokens": {
"input_tokens": 0,
"output_tokens": 0
},
"same_verdict_count": 8
} |
|
Merge gate failed: |
SummaryAdds CanonicalEvent schema with proper validation and test coverage Severitylow Blocking findings
Verdict✅ Approved Merge risklow Audit
{
"approved": true,
"severity": "low",
"summary": "Adds CanonicalEvent schema with proper validation and test coverage",
"findings": [
{
"file": "schemas/v0.1/canonical-event.schema.json",
"line": 64,
"issue": "evidence object allows all fields to be optional despite description implying cryptographic verification - prev_hash, signature, signature_algorithm are optional but critical for chain of trust",
"kind": "suggestion"
}
],
"merge_risk": "low",
"Model": "opus",
"model": "claude-cli",
"effort": "high",
"tokens": {
"input_tokens": 0,
"output_tokens": 0
},
"same_verdict_count": 9
} |
|
Merge gate failed: |
SummaryA well-structured, versioned schema addition with proper validation, test fixtures, and no breaking changes to existing schemas. Severitynone Blocking findingsNone. Verdict✅ Approved Merge risklow Audit
{
"approved": true,
"severity": "none",
"summary": "A well-structured, versioned schema addition with proper validation, test fixtures, and no breaking changes to existing schemas.",
"findings": [],
"merge_risk": "low",
"Model": "opus",
"model": "claude-cli",
"effort": "high",
"tokens": {
"input_tokens": 0,
"output_tokens": 0
},
"same_verdict_count": 10
} |
|
Merge gate failed: |
SummaryPR adds CanonicalEvent schema definition with appropriate test fixtures; no blockers detected Severitynone Blocking findingsNone. Verdict✅ Approved Merge risklow Audit
{
"approved": true,
"severity": "none",
"summary": "PR adds CanonicalEvent schema definition with appropriate test fixtures; no blockers detected",
"findings": [],
"merge_risk": "low",
"Model": "opus",
"model": "claude-cli",
"effort": "high",
"tokens": {
"input_tokens": 0,
"output_tokens": 0
},
"same_verdict_count": 11
} |
|
Merge gate failed: |
SummarySchema addition for CanonicalEvent with appropriate test fixtures; no blockers identified. Severitynone Blocking findingsNone. Verdict✅ Approved Merge risklow Audit
{
"approved": true,
"severity": "none",
"summary": "Schema addition for CanonicalEvent with appropriate test fixtures; no blockers identified.",
"findings": [],
"merge_risk": "low",
"Model": "opus",
"model": "claude-cli",
"effort": "high",
"tokens": {
"input_tokens": 0,
"output_tokens": 0
},
"same_verdict_count": 12
} |
|
Merge gate failed: |
SummarySchema definition is well-structured with appropriate validation; minor observation about incomplete conditional coverage for non-critical event types Severitylow Blocking findings
Verdict✅ Approved Merge risklow Audit
{
"approved": true,
"severity": "low",
"summary": "Schema definition is well-structured with appropriate validation; minor observation about incomplete conditional coverage for non-critical event types",
"findings": [
{
"file": "schemas/v0.1/canonical-event.schema.json",
"line": 18,
"issue": "The type enum includes 'observation', 'model_output', and 'final_answer' event types, but the allOf conditional requirements (lines 45-48) only enforce required fields for 'tool_call', 'policy_decision', 'human_approval', and 'error' types. This means events with type 'observation', 'model_output', or 'final_answer' can be validated without their corresponding optional fields (observation, model_output) being present. While this may be intentional for evolving schema flexibility, consider whether conditional requirements should be added for consistency across all event types.",
"kind": "suggestion"
}
],
"merge_risk": "low",
"Model": "opus",
"model": "claude-cli",
"effort": "high",
"tokens": {
"input_tokens": 0,
"output_tokens": 0
},
"same_verdict_count": 13
} |
|
Merge gate failed: |
SummaryPR adds a well-formed CanonicalEvent schema with proper conditional validation and test fixtures; no blockers found. Severitynone Blocking findingsNone. Verdict✅ Approved Merge risklow Audit
{
"approved": true,
"severity": "none",
"summary": "PR adds a well-formed CanonicalEvent schema with proper conditional validation and test fixtures; no blockers found.",
"findings": [],
"merge_risk": "low",
"Model": "opus",
"model": "claude-cli",
"effort": "high",
"tokens": {
"input_tokens": 0,
"output_tokens": 0
},
"same_verdict_count": 14
} |
|
Merge gate failed: |
SummaryClean addition of CanonicalEvent schema with proper validation, test fixtures, and no breaking changes Severitynone Blocking findingsNone. Verdict✅ Approved Merge risklow Audit
{
"approved": true,
"severity": "none",
"summary": "Clean addition of CanonicalEvent schema with proper validation, test fixtures, and no breaking changes",
"findings": [],
"merge_risk": "low",
"Model": "opus",
"model": "claude-cli",
"effort": "high",
"tokens": {
"input_tokens": 0,
"output_tokens": 0
},
"same_verdict_count": 15
} |
|
Merge gate failed: |
SummaryThe PR adds a new CanonicalEvent schema with proper JSON Schema validation, conditional requirements, and test fixtures; no blockers found. Severitynone Blocking findingsNone. Verdict✅ Approved Merge risklow Audit
{
"approved": true,
"severity": "none",
"summary": "The PR adds a new CanonicalEvent schema with proper JSON Schema validation, conditional requirements, and test fixtures; no blockers found.",
"findings": [],
"merge_risk": "low",
"Model": "opus",
"model": "claude-cli",
"effort": "high",
"tokens": {
"input_tokens": 0,
"output_tokens": 0
},
"same_verdict_count": 16
} |
SummarySchema addition is well-formed with proper validation patterns and test coverage Severitynone Blocking findingsNone. Verdict✅ Approved Merge risklow Audit
{
"approved": true,
"severity": "none",
"summary": "Schema addition is well-formed with proper validation patterns and test coverage",
"findings": [],
"merge_risk": "low",
"Model": "opus",
"model": "claude-cli",
"effort": "high",
"tokens": {
"input_tokens": 0,
"output_tokens": 0
},
"same_verdict_count": 17
} |
|
Merge gate failed: |
SummaryThe PR adds a well-structured JSON schema with proper conditional validation, supporting test fixtures, and appropriate cross-repository documentation. Severitynone Blocking findingsNone. Verdict✅ Approved Merge risklow Audit
{
"approved": true,
"severity": "none",
"summary": "The PR adds a well-structured JSON schema with proper conditional validation, supporting test fixtures, and appropriate cross-repository documentation.",
"findings": [],
"merge_risk": "low",
"Model": "opus",
"model": "claude-cli",
"effort": "high",
"tokens": {
"input_tokens": 0,
"output_tokens": 0
},
"same_verdict_count": 17
} |
|
Merge gate failed: |
SummaryPR adds a new CanonicalEvent schema and test fixtures with no safety issues Severitynone Blocking findingsNone. Verdict✅ Approved Merge risklow Audit
{
"approved": true,
"severity": "none",
"summary": "PR adds a new CanonicalEvent schema and test fixtures with no safety issues",
"findings": [],
"merge_risk": "low",
"Model": "opus",
"model": "claude-cli",
"effort": "high",
"tokens": {
"input_tokens": 0,
"output_tokens": 0
},
"same_verdict_count": 17
} |
|
Merge gate failed: |
SummaryAdditive schema addition with test coverage; no breaking changes Severitynone Blocking findingsNone. Verdict✅ Approved Merge risklow Audit
{
"approved": true,
"severity": "none",
"summary": "Additive schema addition with test coverage; no breaking changes",
"findings": [],
"merge_risk": "low",
"Model": "opus",
"model": "claude-cli",
"effort": "high",
"tokens": {
"input_tokens": 0,
"output_tokens": 0
},
"same_verdict_count": 17
} |
|
Merge gate failed: |
SummaryAdds a well-structured CanonicalEvent schema with appropriate validation, test fixtures, and cross-repository documentation. Severitynone Blocking findingsNone. Verdict✅ Approved Merge risklow Audit
{
"approved": true,
"severity": "none",
"summary": "Adds a well-structured CanonicalEvent schema with appropriate validation, test fixtures, and cross-repository documentation.",
"findings": [],
"merge_risk": "low",
"Model": "opus",
"model": "claude-cli",
"effort": "high",
"tokens": {
"input_tokens": 0,
"output_tokens": 0
},
"same_verdict_count": 17
} |
|
Merge gate failed: |
SummaryPR adds CanonicalEvent schema with proper validation, conditional requirements, and test fixtures Severitynone Blocking findingsNone. Verdict✅ Approved Merge risklow Audit
{
"approved": true,
"severity": "none",
"summary": "PR adds CanonicalEvent schema with proper validation, conditional requirements, and test fixtures",
"findings": [],
"merge_risk": "low",
"Model": "opus",
"model": "claude-cli",
"effort": "high",
"tokens": {
"input_tokens": 0,
"output_tokens": 0
},
"same_verdict_count": 17
} |
|
Merge gate failed: |
SummaryPR adds a new CanonicalEvent schema definition with proper validation rules and test fixtures; no breaking changes to existing schemas. Severitynone Blocking findingsNone. Verdict✅ Approved Merge risklow Audit
{
"approved": true,
"severity": "none",
"summary": "PR adds a new CanonicalEvent schema definition with proper validation rules and test fixtures; no breaking changes to existing schemas.",
"findings": [],
"merge_risk": "low",
"Model": "opus",
"model": "claude-cli",
"effort": "high",
"tokens": {
"input_tokens": 0,
"output_tokens": 0
},
"same_verdict_count": 17
} |
|
Merge gate failed: |
SummaryClean additive schema change with appropriate validation guardrails for cryptographic fields Severitynone Blocking findings
Verdict✅ Approved Merge risklow Audit
{
"approved": true,
"severity": "none",
"summary": "Clean additive schema change with appropriate validation guardrails for cryptographic fields",
"findings": [
{
"file": "schemas/v0.1/canonical-event.schema.json",
"line": 85,
"issue": "Redundant 'required': ['type'] in if conditions since type is already globally required; the if-then logic works but is unnecessary",
"kind": "suggestion"
},
{
"file": "schemas/v0.1/canonical-event.schema.json",
"line": 10,
"issue": "Consider making session_id required if it's intended to be a core identifier alongside run_id for event correlation",
"kind": "suggestion"
}
],
"merge_risk": "low",
"Model": "opus",
"model": "claude-cli",
"effort": "high",
"tokens": {
"input_tokens": 0,
"output_tokens": 0
},
"same_verdict_count": 17
} |
|
Merge gate failed: |
SummaryWell-structured schema addition with proper conditional validation and test fixtures Severitynone Blocking findingsNone. Verdict✅ Approved Merge risklow Audit
{
"approved": true,
"severity": "none",
"summary": "Well-structured schema addition with proper conditional validation and test fixtures",
"findings": [],
"merge_risk": "low",
"Model": "opus",
"model": "claude-cli",
"effort": "high",
"tokens": {
"input_tokens": 0,
"output_tokens": 0
},
"same_verdict_count": 17
} |
|
Merge gate failed: |
SummaryAdds CanonicalEvent schema with proper validation rules and test fixtures; no blockers found Severitynone Blocking findingsNone. Verdict✅ Approved Merge risklow Audit
{
"approved": true,
"severity": "none",
"summary": "Adds CanonicalEvent schema with proper validation rules and test fixtures; no blockers found",
"findings": [],
"merge_risk": "low",
"Model": "opus",
"model": "claude-cli",
"effort": "high",
"tokens": {
"input_tokens": 0,
"output_tokens": 0
},
"same_verdict_count": 17
} |
|
Merge gate failed: |
SummaryMissing conditional validation for observation and model_output event types allows invalid events to pass schema validation Severityhigh Blocking findings
Verdict❌ Rejected Merge riskhigh Audit
{
"approved": false,
"severity": "high",
"summary": "Missing conditional validation for observation and model_output event types allows invalid events to pass schema validation",
"findings": [
{
"file": "schemas/v0.1/canonical-event.schema.json",
"line": 71,
"issue": "The allOf section only provides conditional requirements for tool_call, policy_decision, human_approval, and error types, but not for observation and model_output types despite these being in the type enum (line 14) and having corresponding property objects defined (lines 57-61 for observation, lines 52-55 for model_output). This allows events with type='observation' or type='model_output' to pass validation without their required data properties.",
"kind": "blocker"
}
],
"merge_risk": "high",
"Model": "opus",
"model": "claude-cli",
"effort": "high",
"tokens": {
"input_tokens": 0,
"output_tokens": 0
},
"same_verdict_count": 1
} |
ce59c0a to
71ce4aa
Compare
SummaryAdds new CanonicalEvent JSON schema with proper structure, test fixtures, and validation logic; no blockers found Severitynone Blocking findingsNone. Verdict✅ Approved Merge risklow Audit
{
"approved": true,
"severity": "none",
"summary": "Adds new CanonicalEvent JSON schema with proper structure, test fixtures, and validation logic; no blockers found",
"findings": [],
"merge_risk": "low",
"Model": "opus",
"model": "claude-cli",
"effort": "high",
"tokens": {
"input_tokens": 0,
"output_tokens": 0
},
"same_verdict_count": 17
} |
|
Merge gate failed: |
… model_output, and final_answer in canonical-event schema The allOf section previously only covered tool_call, policy_decision, human_approval, and error types. Added conditional requirements for observation (requires 'observation' property) and model_output (requires 'model_output' property). Added explicit final_answer entry (no extra properties required). This ensures all event types in the enum have corresponding conditional constraints. Co-Authored-By: Claude <noreply@anthropic.com>
71ce4aa to
a1c589f
Compare
SummarySchema PR with missing cross-repository validation and potentially under-specified event types. Severityhigh Blocking findings
Verdict❌ Rejected Merge riskhigh Audit
{
"approved": false,
"severity": "high",
"summary": "Schema PR with missing cross-repository validation and potentially under-specified event types.",
"findings": [
{
"file": "schemas/v0.1/canonical-event.schema.json",
"line": 85,
"issue": "final_answer event type has no conditional requirements (then: { required: [] }), meaning it carries only base fields - what payload does a final_answer event actually contain? No content field, no answer field, just metadata. Under-specified event contract.",
"kind": "blocker"
},
{
"file": "schemas/v0.1/canonical-event.schema.json",
"line": 1,
"issue": "Cross-repository contract schema with consumers=['open-agent-audit', 'wasmagent-js'] but no verification that downstream consumers emit or can consume this format. No PRs or evidence of cross-repo testing. Schema marked stability='evolving' without migration path.",
"kind": "blocker"
},
{
"file": "schemas/v0.1/canonical-event.schema.json",
"line": 76,
"issue": "Conditional validation redundant: allOf if-conditions require ['type'] but 'type' is already in object-level required. Conditions like { if: { required: ['type'] }, then: { required: ['tool'] } } for tool_call are redundant since 'type' is always required.",
"kind": "suggestion"
},
{
"file": "tests/fixtures/valid/canonical-event/example.json",
"line": 15,
"issue": "Hash values use sequential hex patterns (9e6ce95e6a1e4d0f...), not realistic SHA-256 hashes. While valid hex, poor test hygiene makes it harder to detect actual validation bugs.",
"kind": "suggestion"
},
{
"file": "tests/fixtures",
"line": 1,
"issue": "PR adds test fixtures but no test code. No validation that schema actually rejects invalid fixture or accepts valid fixture. Contract schema without test harness.",
"kind": "blocker"
}
],
"merge_risk": "high",
"Model": "opus",
"model": "claude-cli",
"effort": "high",
"tokens": {
"input_tokens": 0,
"output_tokens": 0
},
"same_verdict_count": 1
} |
|
Superseded by PR #136 (now merged), which adds canonical-event to the correct |
Fixes #137
Generated by claude-bot-go worker.